if (typeof MY_ENUM !== 'object') {
    MY_ENUM = {};
}

(function (){
    var enums = '#{enums}';
    var enumJson = eval('(' + enums + ')');

    MY_ENUM.instance = enumJson;
    if (typeof MY_ENUM.getNameByValue !== 'function') {
        /**
         * 根据类型跟值返回对应的名称
         * @param enumType
         * @param value
         * @returns {string|*}
         */
        MY_ENUM.getNameByValue = function (enumType, value) {
            var item = enumJson[enumType];
            if(!item) {
                return "";
            }
            for(var i in item) {
                if(item.hasOwnProperty(i) && item[i].value === value) {
                    return item[i].label;
                }
            }
            return "";
        }
    }

    if (typeof MY_ENUM.getValueByAttrName !== 'function') {
        /**
         * 根据类型跟属性名返回对应的值
         * @param enumType
         * @param attrName
         * @returns {string|*}
         */
        MY_ENUM.getValueByAttrName = function (enumType, attrName) {
            var item = enumJson[enumType];
            if(!item) {
                return "";
            }
            for(var i in item) {
                if(item.hasOwnProperty(i) && i === attrName) {
                    return item[i].value;
                }
            }
            return "";
        }
    }

    if (typeof MY_ENUM.getElOptions !== 'function') {
        /**
         * 根据类型返回组合好的el-options数据，适用于页面的select下拉框
         * @param enumType 枚举类型
         * @returns {Array}
         */
        MY_ENUM.getElOptions = function (enumType) {
            var item = enumJson[enumType];
            if (!item) {
                return [];
            }

            var options = [];
            for (var instance in item) {
                var obj = {};
                obj.value = item[instance].value;
                obj.label = item[instance].label;
                options.push(obj);
            }

            return options;
        }
    }

    if (typeof MY_ENUM.getEnum !== 'function') {
        /**
         * 根据枚举名获取枚举
         * @param enumType 枚举类型
         * @returns {Array}
         */
        MY_ENUM.getEnum = function (enumType) {
            var item = enumJson[enumType];
            if (!item) {
                return [];
            }
            return item;
        }
    }
})();
